
#pragma once

#include "GActivity.h"
#include "Common/Timer/TimerAxis.h"
#include "Common/Event/Event.h"
#include "Common/EventDefine.h"

class GActivityChaosDragon : public IEventExecuteSink, public GActivity
{
public:
	GActivityChaosDragon();
	virtual ~GActivityChaosDragon();
public:
	virtual void Init(uint32_t activityId);
	virtual void UnInit();
	virtual int32_t	GetType() { return ATI_CHAOS_DRAGON; }

	//////////////////////////////////////////////////////////////////////////
	virtual void OnExecute(uint16_t nEventID, uint64_t nSrcID, uint8_t bySrcType, void *pContext, int32_t nLen);


	virtual void InitChaosDragonParam(const ChaosDragonInfo& chaosDragonInfo);

	virtual void	OnActivityStart();
	virtual void	OnActivityStop();

public:
	void			Clear();

	bool OnSkillAttack(skillAttackEvent& attackEvent);
	bool OnCreatureDie(DieEvent& dieEvent);
	bool OnSceneEnter(EnterSceneEvent& enterSceneEvent);

	void GetBossInfo(ActivitySonOfKillingTrackRsp &rsp);

	inline void SetWin(bool isWin) { m_isWin = isWin; }
	inline bool GetWin() { return m_isWin; }

private:
	uint32_t m_sceneId;
	uint32_t m_bossId;
	uint32_t m_bossLv;
	int32_t  m_posX;
	int32_t  m_posY;
	int32_t  m_posZ;
	CharIDType m_bossObjId;
	bool m_broadCastA;
	bool m_broadCastB;
	bool m_broadCastC;
	bool m_broadCastD;
	bool m_broadCastE;
	bool m_broadCastF;
	bool m_isWin;
};